package com.guigu.eduservice.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 支付宝沙箱配置类
 * 作用：读取application.yml中alipay前缀的配置参数
 */
@Component
@ConfigurationProperties(prefix = "alipay") // 绑定配置文件中alipay开头的参数
public class AliPayConfig {

    // 支付宝沙箱APPID（从支付宝开放平台获取）
    private String appId;

    // 应用私钥（自己生成的私钥，用于签名）
    private String appPrivateKey;

    // 支付宝公钥（支付宝提供的公钥，用于验签）
    private String alipayPublicKey;

    // 异步通知地址（支付结果回调的接口地址）
    private String notifyUrl;

    // 同步跳转地址（支付完成后跳转的前端页面，默认值）
    private String returnUrl = "http://localhost:5173/SimpleCarousel";

    // 沙箱环境固定网关地址（不用改）
    public static final String GATEWAY_URL = "https://openapi-sandbox.dl.alipaydev.com/gateway.do";
    // 编码格式（固定UTF-8）
    public static final String CHARSET = "UTF-8";
    // 签名方式（固定RSA2）
    public static final String SIGN_TYPE = "RSA2";
    // 数据格式（固定JSON）
    public static final String FORMAT = "JSON";

    // getter和setter方法（必须有，否则配置参数无法注入）
    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getAppPrivateKey() {
        return appPrivateKey;
    }

    public void setAppPrivateKey(String appPrivateKey) {
        this.appPrivateKey = appPrivateKey;
    }

    public String getAlipayPublicKey() {
        return alipayPublicKey;
    }

    public void setAlipayPublicKey(String alipayPublicKey) {
        this.alipayPublicKey = alipayPublicKey;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getReturnUrl() {
        return returnUrl;
    }

    public void setReturnUrl(String returnUrl) {
        this.returnUrl = returnUrl;
    }
}